package org.funtester.performance.books.chapter04.section3;

import org.funtester.performance.books.chapter03.section3.ThreadTask;
import org.funtester.performance.books.chapter03.section4.TaskExecutor;

import java.util.ArrayList;
import java.util.List;

/**
 * 注册接口性能测试用例
 */
public class RegisterTest {

    public static void main(String[] args) throws InterruptedException {
        int threadNum = 8;// 线程数
        int totalTimesPerThread = 100; // 每个线程的循环次数
        int RumpUpTime = 20; // 预热时间
        List<ThreadTask> tasks = new ArrayList<>();// 任务列表
        for (int i = 0; i < threadNum; i++) {
            RegisterThreadTask task = new RegisterThreadTask(totalTimesPerThread);// 创建任务
            tasks.add(task);// 添加到任务列表
        }
        new TaskExecutor(tasks, "用户注册接口性能测试", RumpUpTime).start();// 执行任务
        int successTotal = 0;// 总成功数
        int errorTotal = 0;// 总失败数
        for (ThreadTask task : tasks) {
            RegisterThreadTask registerThreadTask = (RegisterThreadTask) task;// 强制转换
            successTotal += registerThreadTask.successCount;// 累加成功数
            errorTotal += registerThreadTask.failCount;// 累加失败数
        }
        System.out.println("注册成功人数：" + successTotal);
        System.out.println("注册失败人数：" + errorTotal);
    }

}
